﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;

namespace Anagramme.Contracts
{
    /// <summary>
    /// Contrat pour le service de résultats
    /// </summary>
    [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IResultsServiceCallback))]
    public interface IResultsService
    {
        /// <summary>
        /// Authentifie le client sur le service
        /// </summary>
        /// <param name="token">Jeton de sécurité</param>
        /// <remarks>Le jeton de sécurité est obtenu lors de la connexion au service de lobby</remarks>
        [OperationContract(IsOneWay = true, IsInitiating = true)]
        void Authenticate(Guid token);

        /// <summary>
        /// Envoie d'une demande pour récupérer les informations sur le serveur.
        /// </summary>
        /// <remarks>La récupération des informations entraine la déconnection du serveur</remarks>
        [OperationContract(IsOneWay = true)]
        void RequestResultInfos();
    }
}
